2595. 奇偶位数


给你一个 正 整数 n 。
用 even 表示在 n 的二进制形式（下标从 0 开始）中值为 1 的偶数下标的个数。
用 odd 表示在 n 的二进制形式（下标从 0 开始）中值为 1 的奇数下标的个数。
返回整数数组 answer ，其中 answer = [even, odd] 。

 https://leetcode.cn/problems/number-of-even-and-odd-bits/description/?orderBy=most_votes


法一：位运算
法二：位掩码，分离奇数和偶数

int* evenOddBit(int n, int* returnSize)
{
    *returnSize=2;
    int *ans=(int*)malloc(sizeof(int)*2);

    int counans0=0;
    int counans1=0;
    for(int i=0;i<32;i++)
    {
        if(i%2==0)
        {
            if((n>>i)&1==1)
            {
                counans0++;
            }
        }
        else
        {
            if((n>>i)&1==1)
            {
                counans1++;
            }
        }
    }
    ans[0]=counans0;
    ans[1]=counans1;
    return ans;
}